﻿using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlServerCe;
using System.Collections;

namespace CPTECH.Repository
{
    class CodPadDB: BaseDB
    {
        private static CodPadDB instance;

        private CodPadDB() { }

        public static CodPadDB getInstance()
        {
            if (instance == null)
            {
                instance = new CodPadDB();
            }
            return instance;
        }

        //método que retorna todos os valores da tabela TB_COD_PAD de acordo com o código informado.
        public ArrayList selectByCodPad(string codPad)
        {
            try
            {
                this.open();
                SqlCeCommand command = new SqlCeCommand("SELECT * FROM tb_cod_pad WHERE cod_pad=@codPad;", this.conn);
                command.Parameters.AddWithValue("@codPad", codPad);
                SqlCeDataReader rdr = command.ExecuteReader();
                ArrayList result = new ArrayList();
                while (rdr.Read())
                {
                    result.Add(this.toCodPad(rdr));
                }
                return result;
            }
            finally
            {
                this.close();
            }
        }

        //método que salva os valores lidos no método selectByCodPad.
        private CodPad toCodPad(SqlCeDataReader reader)
        {
            CodPad codPad = new CodPad();
            codPad.COD_PAD = reader.GetString(0);
            codPad.DS_PAD = reader.GetString(1);
            try
            {
                codPad.MARCA = reader.GetString(2);
            }
                catch(Exception) { codPad.MARCA = "NÂO POSSUI"; }

            try
            {
                codPad.MODELO = reader.GetString(3); 
            }
                catch(Exception){ codPad.MODELO = "NÂO POSSUI";}

            try
            {
                codPad.CAPACIDADE = reader.GetString(4); 
            }
            catch (Exception) { codPad.CAPACIDADE = "NÂO POSSUI"; }

            try
            {
                codPad.VIDA_UTIL = reader.GetString(5);
            }
            catch (Exception) { codPad.VIDA_UTIL = "NÂO POSSUI"; }
            
            return codPad;
        }
    }
}
